﻿using System;
using System.Collections.Generic;
using FluorineFx;
using Neturion.Dados;
using Neturion.Fachadas;

namespace Neturion.Servicos
{
    [RemotingService]
    public class ServicoAssunto
    {
        public Assunto Inserir(Assunto assunto, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().Inserir(assunto, usuarioPermissao);
        }

        public Assunto Atualizar(Assunto assunto, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().Atualizar(assunto, usuarioPermissao);
        }

        public void Excluir(Assunto assunto, Usuario usuarioPermissao)
        {
            Fachada.GetInstancia().Excluir(assunto, usuarioPermissao);
        }

        public Assunto ObterAssuntoPorId(int id, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().ObterAssuntoPorId(id, usuarioPermissao);
        }

        public Assunto ObterAssuntoPorCodigo(string codigo, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().ObterAssuntoPorCodigo(codigo, usuarioPermissao);
        }

        public IList<Assunto> ObterTodosAssuntos(Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().ObterTodosAssuntos(usuarioPermissao);
        }

        public IList<Assunto> ObterTodosAssuntos(int inicio, int quantidade, int quantidadeMinima, Usuario usuarioPermissao, string codigo,
            string descricao, TipoAssunto tipoAssunto, Setor setor, Funcionario funcionario, DateTime? inicioVigenciaDe, DateTime? inicioVigenciaAte, DateTime? fimVigenciaDe, DateTime? fimVigenciaAte)
        {

            return Fachada.GetInstancia().ObterTodosAssuntos(inicio, quantidade, quantidadeMinima, usuarioPermissao, codigo, descricao,
                tipoAssunto, setor, funcionario, inicioVigenciaDe, inicioVigenciaAte, fimVigenciaDe, fimVigenciaAte);
        }
    }
}